In a computer system, a plurality of devices such as computer processors, memories, communication devices, etc. are typically coupled together via a common bus. As more devices are added to the bus, the efficiency of the entire system depends on the speed at which transactions between devices take place on the bus. A typical series of bus transactions occurs between a master processing device and a slave memory device. In this series of transactions, the master will transmit a request, via the bus, to all of the other devices coupled to the bus. It is up to the slave to determine whether or not it has been selected by the master. The selected slave will then send an acknowledgement to the master, thus establishing communication between the two devices. Next, data is transferred between the master and slave according to the original request. Finally, the master terminates the transaction with the slave and releases the bus.
A short turnaround time delay between the master's request and the slave's response is important for efficient bus performance. This is achieved with a quick slave-bus interface controller. If the network bus is asynchronous, it is advantageous to make the slave-bus interface side of the controller asynchronous to take full advantage of the speed afforded by the asynchronous bus. This is generally accomplished using a state machine implemented as a programmable array logic (PAL) device. In an asynchronous bus protocol that utilizes a plurality of handshaking signals between a master and a slave to affect bus transactions, a large PAL may be required to detect and generate the appropriate handshaking signals. The operating speed of a PAL is a function of the number of terms that must be handled, and the large PAL that may be required by the asynchronous bus protocol will not provide an acceptable turnaround speed, particularly in high performance computer systems.
Thus, there is a need for an asynchronous bus interface controller that can accommodate a plurality of handshaking signals and which operates with a quick turnaround time. There is also a need for an asynchronous bus interface controller that is easily adaptable to different devices coupled to a standardized network bus.